package com.erhya.export.poi.annotation;

import com.erhya.export.poi.handler.Content;

import java.lang.annotation.*;

/**
 * 导出信息配置注解
 * @author 李林
 * @date 2022-01-22
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ExportField {

    /**
     * 字段加上该注解后，字段值将不使用，该字段将替换为从1开始的计数
     * 使用场景：导出的excel中，需要加入序号显示
     */
    boolean isNo() default false;

    /**
     * 仅作为标记，entity中有时在用lombok的注解作为字段注释，可以用这个替换
     */
    String fieldName() default "";

    /**
     * 导出的单元格的宽度
     */
    int width() default 18;

    /**
     * 当字段为Date类型时，格式化转换
     */
    String dateFormat() default "yyyy-MM-dd HH:mm:ss";

    /** 单元格内容处理（可处理复杂的单元格，例如需要多个字段拼接作为单元格整体）或者特殊数据类型的数据解析 */
    Class<? extends Content>[] contentHandler() default {};

    /** 数据字段为BigDecimal时有效，分别为小数保留位数及四舍五入方式 */
    int[] scale() default {};

}
